﻿Imports System
Imports System.CodeDom
Imports System.Workflow.ComponentModel
Imports System.Workflow.ComponentModel.Compiler

Namespace System.Workflow.ComponentModel.Design
    Public Interface IMemberCreationService
        ' Methods
        Sub CreateEvent(ByVal className As String, ByVal eventName As String, ByVal eventType As Type, ByVal attributes As AttributeInfo(), ByVal emitDependencyProperty As Boolean)
        Sub CreateField(ByVal className As String, ByVal fieldName As String, ByVal fieldType As Type, ByVal genericParameterTypes As Type(), ByVal attributes As MemberAttributes, ByVal initializationExpression As CodeSnippetExpression, ByVal overwriteExisting As Boolean)
        Sub CreateProperty(ByVal className As String, ByVal propertyName As String, ByVal propertyType As Type, ByVal attributes As AttributeInfo(), ByVal emitDependencyProperty As Boolean, ByVal isMetaProperty As Boolean, ByVal isAttached As Boolean, ByVal ownerType As Type, ByVal isReadOnly As Boolean)
        Sub RemoveEvent(ByVal className As String, ByVal eventName As String, ByVal eventType As Type)
        Sub RemoveProperty(ByVal className As String, ByVal propertyName As String, ByVal propertyType As Type)
        Sub ShowCode()
        Sub ShowCode(ByVal activity As Activity, ByVal methodName As String, ByVal delegateType As Type)
        Sub UpdateBaseType(ByVal className As String, ByVal baseType As Type)
        Sub UpdateEvent(ByVal className As String, ByVal oldEventName As String, ByVal oldEventType As Type, ByVal newEventName As String, ByVal newEventType As Type, ByVal attributes As AttributeInfo(), ByVal emitDependencyProperty As Boolean, ByVal isMetaProperty As Boolean)
        Sub UpdateProperty(ByVal className As String, ByVal oldPropertyName As String, ByVal oldPropertyType As Type, ByVal newPropertyName As String, ByVal newPropertyType As Type, ByVal attributes As AttributeInfo(), ByVal emitDependencyProperty As Boolean, ByVal isMetaProperty As Boolean)
        Sub UpdateTypeName(ByVal oldClassName As String, ByVal newClassName As String)
    End Interface
End Namespace

